1. Field of the Invention
The present invention relates generally to a communication system, and in particular, to a joint detection apparatus and method used for a downlink receiver in a CDMA (Code Division Multiple Access) communication system.
2. Description of the Related Art
A CDMA communication system simultaneously receives/transmits a plurality of user signals in the same frequency band and time period, after separating the user signals with associated spreading codes previously assigned to the respective users. A radio channel undergoes an attenuation of waves and a change in fading according to circumstances. A transmission signal from a transmitter arrives at a receiver through multiple paths. The receiver for the CDMA communication system receives inter-symbol interference (ISI) and multiple access interference (MAI) along with the transmission signal due to the radio channel environments. Here, the ISI refers to an interference caused by multipath components of the same user signal, while the MAI refers to an interference caused by a single-path component and multi-path components of different user signals. The existing receiver for the CDMA communication system restores (demodulates) only the transmission signal to its user, using a matched filter, while regarding such interferences as noises.
In the communication system, a base station exchanges signals with a plurality of mobile stations, and reception power at the base station and the mobile station depends upon a distance and a channel condition between the base station and the mobile station. That is, a decrease in the distance between the base station and the mobile station leads to an increase in power of a received signal, whereas an increase in the distance between the base station and the mobile station brings about a decrease in power of the received signal. Therefore, a signal from a user at a long distance undergoes interference with a signal from a user at a short distance, so the system using the matched filter cannot correctly restore user signals. Such a phenomenon is called a “near-far problem”, and the system using the matched filter employs power control in order to solve this problem. That is, the system decreases transmission power of a signal to the user at a short distance, and increases transmission power of a signal to the user at a long distance. Here, for correct power control, the system requires accurate reception power measurement and a feedback signal channel.
Unlike the matched filter-based receiver that regards the interferences as noises, a device designed to remove an influence of the interferences between the users by processing user interference signals as separate signals is referred to as a “joint detector (JD)” or “multi-user detector”. An optimal joint detector, such as an ML (Maximum Likelihood) joint detector using an ML algorithm, has high complexity, so it is not possible to realize the ML joint detector at the current state of the art. Accordingly, various quasi-optimal joint detectors have been proposed. The quasi-optimal joint detectors have lower complexity than the optimal joint detector, and show better performance than the existing matched filter-based receiver.
Typically, the proposed quasi-optimal joint detector includes a ZF (Zero Forcing) joint detector using a ZF algorithm, and an MMSE (Minimum Mean Square Error) joint detector using an MMSE algorithm. The ZF joint detector and the MMSE joint detector should completely remove both the inter-symbol interference and the multiple access interference by removing a cross-correlation between multipath signals and a cross-correlation between different user signals. There is a strong possibility that the ZF joint detector and the MMSE joint detector can be realized. Further, these joint detectors have been proposed as a candidate for a receiver for an IMT-2000 system, an advanced mobile communication system. Meanwhile, unlike the joint detector, a device aimed to remove the inter-symbol interference is referred to as an equalizer. An equalizer using the ZF algorithm is called a “ZF equalizer”, while an equalizer using the MMSE algorithm is called an “MMSE equalizer”.
A description will now be made of a joint detector in a communication system according to the prior art. Herein, the description will be given based on the 3GPP (3rd Generation Partnership Project) TDD (Time Division Duplex) specification, one of the IMT-2000 specifications. In the 3GPP/TDD scheme, spreading codes and scrambling codes have a short length. As a result, a great deal of research is being carried out on the application of the joint detector. The joint detector will be described with reference to the ZF joint detector, a typical linear joint detector.
FIG. 1 illustrates structures of an uplink transmitter, a channel and a receiver with a joint detector in a 3GPP/TDD CDMA communication system according to the prior art. Herein, an encoder and an interleaver in the transceiver structure will not be described, and only a joint detector-related part in a baseband device will be described. Although a downlink and an uplink can be both considered, the description will be made with reference to the uplink supporting K users, since the downlink can be regarded as a specific case of the uplink. In the uplink, the transmitter serves as the mobile station and the receiver serves as the base station. On the contrary, in the downlink, the transmitter serves as the base station and the receiver serves as the mobile station.
Referring to FIG. 1, a first user's data sequence is modulated into a QPSK (Quadature Phase Shift Keying) signal by a QPSK modulator 101, and then spread with a spreading code assigned to the first user by a CDMA spreader 102. The signal spread by the CDMA spreader 102 is scrambled with a scrambling code by a scrambler 103. The scrambled signal is filtered by an RRC (Root Raised Cosine) filter 104 before being transmitted. The signal transmitted by the RRC filter 104 is added to other user signals and AWGN (Additive White Gaussian Noise) 116, while passing a multipath fading channel 105. Meanwhile, a Kth user's data sequence is modulated into a QPSK signal by a QPSK modulator 111, and then spread with a spreading code assigned to the Kth user by a CDMA spreader 112. The spread signal is scrambled with a scrambling code by a scrambler 113. The scrambled signal is filtered by an RRC filter 114 before being transmitted. The transmitted signal is added to other user signals and AWGN 116 through a multipath fading channel 115.
Therefore, the receiver receives a signal obtained by adding the user signals received through the multiple paths to the AWGN, and the received signal is provided to a channel estimator 118 and a joint detector 132 through an RRC filter 117. The channel estimator 118 performs channel estimation on a channel impulse response of the multipath fading channel, and provides the channel-estimated results to the joint detector 132. A multiplier 121 multiplies a first user's spreading code Code#1 by a scrambling code, and provides its output to the joint detector 132. The receiver performs the above process even on the other users. Therefore, a multiplier 131 multiplies a Kth user's spreading code Code#K by the scrambling code, and provides its output to the joint detector 132. The joint detector 132 performs detection on the user data sequences using the results obtained by multiplying the user spreading sequences by the scrambling code. An operation of the joint detector 132 will be described in detail herein below.
An operating principle of the uplink joint detector in the CDMA communication system will be described herein below in accordance with the following equations. For example, in the CDMA communication system supporting (servicing) K users, a kth user's data sequence with a length N is defined as
                                          d                          (              k              )                                =                                                                      (                                                            d                      1                                              (                        k                        )                                                              ,                                          d                      2                                              (                        k                        )                                                              ,                    …                    ⁢                                                                                  ,                                          d                      N                                              (                        k                        )                                                                              )                                T                            ⁢                                                          ⁢              for              ⁢                                                          ⁢              k                        =            1                          ,        2        ,        …        ⁢                                  ,        K                            (        1        )            
Here, a kth user's spreading sequence with a spreading gain Q is defined as
                                                        c                              (                k                )                                      =                                                                                (                                                                  c                        1                                                  (                          k                          )                                                                    ,                                              c                        2                                                  (                          k                          )                                                                    ,                      …                      ⁢                                                                                          ,                                              c                        Q                                                  (                          k                          )                                                                                      )                                    T                                ⁢                                                                  ⁢                for                ⁢                                                                  ⁢                k                            =              1                                ,          2          ,          …          ⁢                                          ,          K                ⁢                                                      (        2        )            
Here, a channel impulse response with a length W for the kth user is defined as
                                          h                          (              k              )                                =                                                                      (                                                            h                      1                                              (                        k                        )                                                              ,                                          h                      2                                              (                        k                        )                                                              ,                    …                    ⁢                                                                                  ,                                          h                      W                                              (                        k                        )                                                                              )                                T                            ⁢                                                          ⁢              for              ⁢                                                          ⁢              k                        =            1                          ,        2        ,        …        ⁢                                  ,        K                            (        3        )            
A combined channel impulse response obtained by combining the spreading sequence with the channel impulse response is defined as
                                          b                          (              k              )                                =                                                    (                                                      b                    1                                          (                      k                      )                                                        ,                                      b                    2                                          (                      k                      )                                                        ,                  …                  ⁢                                                                          ,                                      b                                          Q                      +                      W                      -                      1                                                              (                      k                      )                                                                      )                            T                        =                                                            c                                      (                    k                    )                                                  *                                  h                                      (                    k                    )                                                  ⁢                                                                  ⁢                for                ⁢                                                                  ⁢                k                            =              1                                      ,        2        ,        …        ⁢                                  ,        K                            (        4        )            
If the data sequence of Equation (1) passes through the combined channel impulse response of Equation (4), a length of the sequence becomes NQ+W−1, and a noise sequence also has the same length and is expressed asn=(n1, n2, . . . , nQ+W−1)T  (5)
An average of respective elements of the noise sequence is ‘0’, and a covariance matrix based on white Gaussian distribution with a variance σ2 is expressed as Rn=E[n·nH], where E[X] means the expectation of variable X and nH represents a Hermitian, that is, the conjugation of a transposition for the matrix n.
From Equation (1), a data sequence of K users for the connected users' data sequences is calculated byd(k)=(d(1)T, d(2)T, . . . , d(K)T)T=(d1, d2, . . . , dKN)T  (6)
From Equation (4), respective combined channel impulse responses for K users' data sequences with a length N can be expressed in a matrix as follows.
                                                        A              =                              (                                  A                  ij                                )                                      ;                          i              =              1                                ,          2          ,          …          ⁢                                          ,                      NQ            +            W            -            1                    ,                      j            =            1                    ,          2          ,          …          ⁢                                          ,          KN                ⁢                                  ⁢                              A                                                            Q                  ⁡                                      (                                          n                      -                      1                                        )                                                  +                l                            ,                              n                +                                  N                  ⁡                                      (                                          k                      -                      1                                        )                                                                                =                      {                                                                                                      b                      i                                                                        (                          k                          )                                                ⁢                                                                                                                                                                                                                                  0                      ⁢                                                                                                                                                      ⁢                                                          ⁢                                                                                                                                            for                          ⁢                                                                                                          ⁢                          k                                                =                        1                                            ,                      …                      ⁢                                                                                          ,                      K                      ,                                              n                        =                        1                                            ,                      …                      ⁢                                                                                          ,                      N                                                                                                            else                                                                        ⁢                                                                                    (        7        )            
From Equations (1) to (7), a sequence received at the receiver is expressed asr=(r1, r2, . . . , rQ+W−1)T=Ad+n  (8)
For the received sequence, the ZF joint detector estimates a sequence minimizing a value represented by Equation (9) as a data sequence.(r−A{circumflex over (d)}ZF)HRn−1(r−A{circumflex over (d)}ZF)  (9)
A data sequence satisfying Equation (9) is calculated by{circumflex over (d)}ZF=(AHRn−1A)−1AHRn−1r =d+(AHRn−1A)−1AHRn−1n  (10)(User Data Sequence)+(Noise)
If a correlation coefficient in each term of the noise sequence in Equation (5) is ‘0’, a covariance matrix of the noise is expressed as Rn=σ2I, and Equation (10) is rewritten as{circumflex over (d)}ZF=(AHA)−1AHr  (11)
Matrix calculation of Equation (11) is expressed as follows by Cholesky Decomposition for inverse matrix calculation.AHA=LDLH  (12)
In Equation (12), D represents a diagonal matrix and L represents a lower triangular matrix.
Since the ZF joint detector performs matrix calculation on the combined channel impulse response matrix, its output becomes a value estimated for the respective symbols of a data sequence. The ZF joint detector outputting the above symbol estimated value will be called a “symbol-level detector”, in order to distinguish it from a chip-level ZF joint detector, which will be described below in relation to the downlink.
The symbol-level ZF joint detector is simpler in complexity than the optimal joint detector, but it still has a high complexity and requires accurate channel estimation and many calculations. Most of the calculations are concentrated on multiplication of an A matrix related to the combined channel impulse response and inverse matrix calculation. The A matrix has a row with a length of NQ+W−1 and a column with a length of KN, wherein the row length is in proportion to a length of the data sequence and a spreading gain, and the column length is proportion to the number of users and a length of the data sequence. Therefore, an increase in the length of the data sequence or an increase in the number of users causes a considerable increase in calculations of the A matrix and the inverse matrix so that the joint detector cannot be realized.
When the ZF joint detector is applied to the downlink of the CDMA communication system, its complexity may be partially decreased in light of the downlink characteristic. In the downlink, the base station serves as the transmitter and the mobile station serves as the receiver, so the mobile stations of the respective users are not required to estimate other users' data sequences in addition to its own data sequence, and channel impulse responses of all of the users have the same value. Like the uplink, the downlink can also use the ZF joint detector algorithm. Herein, however, the description will be made of a downlink ZF joint detector algorithm, the complexity of which is reduced using the downlink characteristic. In this algorithm, the ZF joint detector is comprised of a ZF block channel equalizer and a single-user detector.
FIG. 2 illustrates structures of a downlink transmitter, a channel and a receiver with a joint detector in a 3GPP/TDD CDMA communication system according to the prior art. Referring to FIG. 2, a first user's data sequence is modulated into a QPSK signal by a QPSK modulator 201, and then spread with a spreading code assigned to the first user by a CDMA spreader 202. Likewise, a Kth user's data sequence is modulated into a QPSK signal by a QPSK modulator 211, and then spread with a spreading code assigned to the Kth user by a CDMA spreader 212. The spread signals of the respective users are summed (or XORed) on a chip level by a summer 213, and then scrambled with a unique scrambling code of the base station by a scrambler 214. The scrambled signal is filtered by an RRC filter 215 before being transmitted. The transmitted signal, to which AWGN 217 is added while it passes a multipath fading channel 216, is received at the receiver.
The receiver provides the received signal to a channel estimator 219 and a channel equalizer 220 through an RRC filter 218. The channel estimator 219 performs channel estimation on a channel impulse response of the multipath fading channel, and provides the channel-estimated results to the channel equalizer 220. The channel equalizer 220 compensates for multipath channel fading of the received signal using the estimated channel impulse response, thereby to remove multipath interference from the received signal. The signal output from the channel equalizer 220 is provided to a single-user detector 222. The single-user detector 222 despreads the signal output from the channel equalizer 220 with an ith user's spreading code and a scrambling code output from a multiplier 221, thereby to detect an ith user's data sequence.
An operating principle of the downlink ZF joint detector will be described herein below in accordance with the following equations. From Equation (2), a spreading sequence for the respective user data sequences is expressed in a matrix as follows.
                                                        C              =                              (                                  C                  ij                                )                                      ;                          i              =              1                                ,          2          ,          …          ⁢                                          ,          NQ          ,                      j            =            1                    ,          2          ,          …          ⁢                                          ,          KN                ⁢                                  ⁢                              C                                                            Q                  ⁡                                      (                                          n                      -                      1                                        )                                                  +                q                            ,                                                N                  ⁡                                      (                                          k                      -                      1                                        )                                                  +                n                                              =                      {                                                                                                      c                      q                                              (                        k                        )                                                                                                                                  0                                                              ⁢                                                                                                                                                                        for                            ⁢                                                                                                                  ⁢                            q                                                    =                          1                                                ,                        …                        ⁢                                                                                                  ,                        Q                        ,                                                  n                          =                          1                                                ,                        …                        ⁢                                                                                                  ,                        N                        ,                                                  k                          =                          1                                                ,                        …                        ⁢                                                                                                  ,                        K                                            ⁢                                                                                                                                                                                else                                                                                                          (        13        )            
Further, from Equation (3), a channel impulse response for the respective user spreading sequences is expressed in a matrix as follows.
                                                                                                              H                                          (                      k                      )                                                        =                                      (                                          H                      ij                                              (                        k                        )                                                              )                                                  ;                                  i                  =                  1                                            ,              2              ,              …              ⁢                                                          ,                              NQ                +                W                -                1                            ,                              j                =                1                            ,              2              ,              …              ⁢                                                          ,              NQ                                                                                          H                y                            =                              {                                                                                                                              h                                                      i                            -                            j                            +                            1                                                                                (                            k                            )                                                                                                                                                              0                                                                              ⁢                                                                                                                                          if                            ⁢                                                                                                                  ⁢                            1                                                    ≤                                                      i                            -                            j                            +                            1                                                    ≤                          W                                                                                                                                    else                                                                                                                                                    (        14        )            
Further, a reception noise of a specific user, i.e., a kth user, for Equation (5) is represented by
                              n                      (            k            )                          =                              (                                          n                1                                  (                  k                  )                                            ,                              n                2                                  (                  k                  )                                            ,              …              ⁢                                                          ,                              n                                  Q                  +                  W                  -                  1                                                  (                  k                  )                                                      )                    T                                    (        15        )            
From Equations (6), (13), (14) and (15), a received sequence of the kth user is expressed as
                              r                      (            k            )                          =                                            (                                                r                  1                                      (                    k                    )                                                  ,                                  r                  2                                      (                    k                    )                                                  ,                …                ⁢                                                                  ,                                  r                                      Q                    +                    W                    -                    1                                                        (                    k                    )                                                              )                        T                    =                                                    H                                  (                  k                  )                                            ⁢              Cd                        +                          n                              (                k                )                                                                        (        16        )            
For the received sequence, the downlink ZF joint detector, i.e., a chip-level ZF joint detector, unlike the symbol-level ZF joint detector described above in relation to the uplink, acquires a received chip-level spreading sequence by passing the received sequence through the ZF block channel equalizer using the channel impulse response matrix. Further, the chip-level ZF joint detector searches an estimation value for the respective symbols of the data sequence by passing again the received chip-level spreading sequence through the single-user detector 222. In this manner, unlike the symbol-level ZF joint detector, the chip-level ZF joint detector performs chip-level detection. The chip-level ZF joint detector, the complexity of which is reduced using the characteristic of the downlink, can be used in the downlink. A chip-level output sZF(k) from the channel equalizer 220 for the received sequence is represented by
                                          s            ZF                          (              k              )                                =                                                    (                                                      H                                                                  (                        k                        )                                            H                                                        ⁢                                      H                                          (                      k                      )                                                                      )                                            -                1                                      ⁢                          H                                                (                  k                  )                                H                                      ⁢                          e                              (                k                )                                                    ⁢                                  ⁢                              e            ⁡                          (              k              )                                ->                                    r              ⋀                        ⁡                          (              k              )                                                          (        17        )            
By passing the output of the ZF block channel equalizer 220 through the single-user detector 222, it is possible to estimate a desired user data sequence given below.
                                              ⁢                                                                                                  d                    ^                                    ZF                                                            (                      k                      )                                        ⁢                    _                                                  =                                ⁢                                                                            (                                              diag                        ⁡                                                  (                                                                                    C                                                                                                (                                  k                                  )                                                                H                                                                                      ⁢                                                          C                                                              (                                k                                )                                                                                                              )                                                                    )                                                              -                      1                                                        ⁢                                      C                                                                  (                        k                        )                                            H                                                        ⁢                                      s                    ZF                                          (                      k                      )                                                                                                                                              =                                ⁢                                                                            (                                              diag                        ⁡                                                  (                                                                                    C                                                                                                (                                  k                                  )                                                                H                                                                                      ⁢                                                          C                                                              (                                k                                )                                                                                                              )                                                                    )                                                              -                      1                                                        ⁢                                                            C                                                                        (                          k                          )                                                H                                                              ·                                          (                                                                                                    H                                                                                          (                                k                                )                                                            H                                                                                ⁢                                                      H                                                                                          (                                k                                )                                                            H                                                                                ⁢                                                      e                                                          (                              k                              )                                                                                ⁢                                                      e                            ⁡                                                          (                              k                              )                                                                                                      →                                                  r                          ^                                                      (                            k                            )                                                                                                                                                                                                      (        18        )            
For a comparison between the chip-level ZF joint detector and the symbol-level ZF joint detector, Equations (8) and (16) can be generalized as follows.r=HCd+n  (19)
In Equation (19), r indicates a received sequence, H indicates a channel impulse response sequence, C indicates a spreading sequence, and n indicates a noise sequence.
If A=HC, Equation (19) is expressed as Ad+n=r. In this case, the symbol-level ZF joint detector personally estimates a symbol-level data sequence by calculating Ad+n=r for d. However, if s=Cd, Equation (19) is expressed as Hs+n=r. In this case, the chip-level ZF joint detector estimates a chip-level data sequence by calculating Hs+n=r for s, and then estimates a symbol-level data sequence by applying the single-user detector 222 to the estimated chip-level data sequence.
A calculation order and major calculations of the symbol-level ZF joint detector will be described herein below on a step-by-step basis. Here, calculations of the symbol-level ZF joint detector will be expressed in terms of the number of multiplications that cause an increase in complexity in actual implementation.
Step 1: Matrix Multiplication for Calculating AHA and AHr in Equation (11)
Calculations for AHA and AHr are (Q+W−1) *(NK)2 times of multiplication and (Q+W−1)*KN times of multiplication, respectively.
Step 2: Cholesky Decomposition for Calculating AHA=LDLH 
Calculations are in proportion to N3 times of multiplication.
Step 3: Forward and Reverse Replacement and Elimination for Estimating d in LDLHd=AHr
Next, a calculation order and major calculations of the chip-level ZF joint detector will be described herein below on a step-by-step basis.
Step 1: Matrix Multiplication for Calculating HHH and HHr in Equation (17)
Calculations for HHH and HHr are W*(NQ)2 times of multiplication and W*KQ times of multiplication, respectively.
Step 2: Cholesky Decomposition for Calculating HHH=LDLH 
Calculations are in proportion to (NQ)3 times of multiplication, but the calculations are in proportion to W2*NQ times of multiplication in a band diagonal matrix HHH.
Step 3: Forward and Reverse Replacement and Elimination for Estimating s in LDLHs=AHr
Step 4: Spreading Code Multiplication for Despreading s Calculated in Step 3
Both the symbol-level and chip-level ZF joint detectors require the maximum amount of calculations in the Cholesky Decomposition process of Step 2. In Step 2, the symbol-level and chip-level ZF joint detectors require calculations in proportion to N3 and W2*NQ, respectively, and a length N of the data sequence is much greater than a spreading gain Q and a channel impulse response length W. Therefore, the chip-level ZF joint detector has less complexity and calculations in realization as compared with the symbol-level ZF joint detector. However, the chip-level ZF joint detector requires calculations of the same order for N, Q and W, so it still requires considerably high complexity. Accordingly, it is not possible to reduce the calculations and complexity to a desirable level, causing a problem in realization.